package com.bird.tcp;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * @author sijunqiang
 * @data 2021/8/1 16:50
 * @description:
 */ // 网络通信之--服务端
class ServerSocket {


    //public ServerSocket(int port) ：参数port服务端端口号。
    //使用该构造方法能够让服务端对象绑定监听一个端口号。

    //服务端
    public static void main(String[] args) throws IOException {

        System.out.println("服务端启动,等待连接...");

        //创建ServerSocket对象 绑定端口号 等待连接
        java.net.ServerSocket serverSocket = new java.net.ServerSocket(6666);

        //接收accept方法,返回socket对象 客户端对象 这里会一直阻塞
        java.net.Socket socket = serverSocket.accept();

        // 通过socket 获取输入流
        InputStream is = socket.getInputStream();

        // 一次性读取数据
        byte[] bytes = new byte[1024];
        int len = is.read(bytes);

        //解析数据
        String msg = new String(bytes, 0, len);
        System.out.println(msg);


        //=============回写数据========
        System.out.println("==========回写数据========");

        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("客户端已收到数据".getBytes());

        //关闭资源
        outputStream.flush();
        outputStream.close();
        is.close();
        serverSocket.close();


    }
}
